package com.demo.behavioral.iterator;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * 迭代子模式
 * 应用在于实现对聚集对象的迭代访问，如JAVA语言以接口java.util.Iterator的方式支持迭代子模式，因语言本身已支持，因而几乎没有使用
 * 场景，但如果掌握了该设计模式，也可以自己实现属于自己的迭代器、集合类。以下例子为模拟jdk的设计模式写一个迭代器和集合类实现遍历。
 * 实现方式为collection类中定义获取迭代器方法，迭代器中定义实现方法，且持有colletion对象。
 * @author allen
 *
 */
public class Test {
	
	public static void main(String[] args) {
		//java的迭代器、集合类实现例子
		List<String> objArray = Arrays.asList("aa","bb","cc"); 
		Iterator iterator = objArray.iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
		//自己实现的例子对比，这里忽略将数据转为集合的过程
		MyCollection mylist = new FastList();  
		MyIterator myIterator = mylist.iterator();
		while(myIterator.hasNext()){
			System.out.println(myIterator.next());
		}		
		
		
	} 

}
